home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
Form.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-07-10
|
2KB
|
81 lines
#ifdef __GNUG__
#pragma implementation
#endif
#include "Form.h"
#include "Class.h"
#include "Math.h"
#include "OrdColl.h"
#include "TextItem.h"
//---- Form --------------------------------------------------------------------
NewMetaImpl0(Form, Box);
Form::Form(int id, VObjAlign, Point g)
: Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVBase))
{
}
Form::Form(int id, VObjAlign, Point g, SeqCollection *cp)
: Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVBase), cp)
{
}
Form::Form(int id, VObjAlign, Point g, VObject *va_(vop), ...)
: Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVBase))
{
va_list ap;
va_start(ap, va_(vop));
SetItems(va_(vop), ap);
va_end(ap);
}
Form::Form(VObject *va_(vop), ...)
: Box(cIdNone, Point(2,0), gPoint2, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVCenter))
{
va_list ap;
va_start(ap, va_(vop));
SetItems(va_(vop), ap);
va_end(ap);
}
Form::Form(int id, VObjAlign, Point g, char* va_(label), ...)
: Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVCenter))
{
va_list ap;
va_start(ap, va_(label));
Init(va_(label), ap);
va_end(ap);
}
Form::Form(char* va_(label), ...)
: Box(cIdNone, Point(2,0), gPoint2, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVCenter))
{
va_list ap;
va_start(ap, va_(label));
Init(va_(label), ap);
va_end(ap);
}
void Form::Init(char *label, va_list ap)
{
register VObject *vop;
for (int i= 0; ; i++) {
if (Math::Even(i)) {
char *s= (i == 0) ? label : va_arg(ap, char*);
if (s) {
vop= new TextItem(s);
vop->SetFlag(eVObjHFixed);
} else
break;
} else {
if ((vop= va_arg(ap, VObject*)) == 0)
break;
}
Add(vop);
}
}